最近疫情又严重了,大(✏)家注意防范哦,出门一定要带口罩,今天小编给大家(🉐)带来,模拟器检测(😱),希望(🎌)对大家有所帮助,让我们一起共同进步。
模拟器检测,顾名思义,软件、手游等不能运行在模拟器上面。
灰黑产:比如一(🤟)个游戏能在模拟器上实现批量刷金币,或者是其他功能,但是模拟器没法启动起来,这种情况就得换真机,成本也就多了。
从正向防护角度来看,如何检测模拟器?wifi、蓝牙、电量(是不是一直百分百)、cpu等等,手机的配置信息是非常多的,我们直接获取这些细信息,来做一个判断;我们先来看如何获(📬)取这些信(🐐)息:比如手机设备号、时间等等、状(🥖)态信息等。
在模拟器中打(📞)开设置,来到最后一项:(🥚)关于平板电脑
分析代码首先定义一个数组,检测两个通道,然后循环,判断输出
检测驱动文件内容(👿)读取文件内容,然后检查已知QEmu的驱动程(✳)序的(🌑)列表
然后,检测模拟(🌹)器上特(🌫)有的几个(🆎)文件
检测模拟器默认的电话号码
然(🗒)后:检测设(🥢)备IDS 是不是 “000000000000000”
然后:检测imsi id是(👱)不是“310260000000000”
然后:检测手机上的一些硬件信息
然后检测手机运营商家
然后:基于模拟器cpu信息(🍓)的检测
然后:关键(👧)路径检测特定模拟器检测
除了上述这些,比如还一些(🌖)模拟器(⛎)默认的软件:
还有检测GPS定位等等其他的,这个就得结合前面的知识具体分析了,看(🍊)他哪个点、哪个(😃)代码是有这些关键检测的,还会有可能是多种组组合检测。
分析一个样本安装,运行效果
对于没有提示的,那就只能多(🔁)分析他的代码,也就是增加(⚓)了些工程量。
放到androidkiller里面反编译,一般游戏的话,对模拟器的检测是非常多(😏)的。
还有一种协议检测,他会通过发包,把你的包发给服务器,然后有服务器来判断你目前的环境是不是模拟器。这种的话就(🛡)搜到关键信息,想解决的话只能在后面分析协议,然后慢慢去摸索了。
我们先来看这个权限,蓝牙;我们知道模拟器是没有蓝牙的。
简单分析一(🍋)下这些(🌦)权限;我们也可以在权限上动手脚,如果把权限删掉就不会调用了,但是如何你直接暴力删掉,有时候程序会崩溃;
先搜索一波(演示一(💔)下):应用在模(😎)拟器上运行(🚰):发现没搜到
转U码试试;搜到两处
过来后,找到所在(🤾)方法;这个有可能就(😧)是
看一下本类其他(🛶)方(📧)法:还有一(🤒)个初始化
再来看一下入口界面;(🔮)application这里:
就是这(💶)里;
过来后,找到Oncreate:
简单分析下smail;
然后看java代码;进行(🗺)一个简单分析;
然后看(👯)入口界面,发现丢失;
这里cocos2d设计游戏引擎;(💁)
刚才已经(🌋)找到 运行在模拟器上的位置:
直接定(🤝)位过去,看java代码。
if判断,Toast弹出模拟器上运行,然后杀死进程,退出。
其实很明显,改起来也很简单,可以把killproces这个函数nop掉,就可以过掉模拟器检测;
小结:以(🌅)上就是今天小编要给大家讲解的模拟器检测了,还给大家实例了一下,不(🥂)明白的小伙伴可以私聊(📇)我